13eaf8b53040cc413bad5c1e47dfee80cdca3e34,jwe/callout/src/main/java/com/apigee/callout/jwe/JweEncryptorCallout.java,JweEncryptorCallout,resolvePropertyValue,#String#MessageContext#,190
Before Change
// eg, {apiproxy.name}, then "resolve" the value by de-referencing
// the context variable whose name appears between the curlies.
private String resolvePropertyValue(String spec, MessageContext msgCtxt) {
if (spec.startsWith("{") && spec.endsWith("}")) {
String varname = spec.substring(1,spec.length() - 1);
String value = msgCtxt.getVariable(varname);
return value;
}
return spec;
}
After Change
// If the value of a property value contains open and close curlies, eg,
// {apiproxy.name} or ABC-{apikey}, then "resolve" the value by de-referencing
// the context variables whose names appear between curlies.
private String resolvePropertyValue(String spec, MessageContext msgCtxt) {
if (spec.indexOf('{') > -1 && spec.indexOf('}')>-1) {
// Replace ALL curly-braced items in the spec string with
// the value of the corresponding context variable.
TemplateString ts = new TemplateString(spec);
Map<String,String> valuesMap = new HashMap<String,String>();
for (String s : ts.variableNames) {
valuesMap.put(s, (String) msgCtxt.getVariable(s));
}
StrSubstitutor sub = new StrSubstitutor(valuesMap);
String resolvedString = sub.replace(ts.template);
return resolvedString;
}
return spec;
}